package acm;

import java.util.Scanner;


public class NumeroRomano {

	private String palabra;
	
	/**
	 * Metodo conversor de numero arabigo a numero romano
	 * 
	 * @return true si fue posible convertir  y false en caso de no ser posible por algun tipo de error
	 */

	public boolean solucion() {
		int i;
		int numero = 0;
		int cantidades[] = { 1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4,
				1 };
		String letras[] = { "m", "cm", "d", "cd", "c", "xc", "l", "xl", "x","ix", "v", "iv", "i" };

		if (comprobarNumero()) {

			numero = Integer.parseInt(this.getPalabra());
			if (numero == 0) {
				return false;
			}
			System.out.printf("%-4d   ", numero);
			i = 0;
			while (numero > 0) {
				if (numero >= cantidades[i]) {
					System.out.print(letras[i]);
					numero = numero - cantidades[i];
				} else
					i++;
			}
			System.out.println();

			return true;
		} else {
			return false;
		}

	}

	private boolean comprobarNumero() {

		try {
			int num = Integer.parseInt(this.getPalabra());
			return true;
		} catch (Exception e) {
			return false;
		}

	}
	
	/**
	 * Metodo que devuelve el String por el susuario
	 * 
	 * 
	 */

	public String getPalabra() {
		return palabra;
	}

	
	/**
	 * Metodo que asigna un String a una variable para procesder a la conversion
	 * @param String
	 * 
	 */
	public void setPalabra(String palabra) {
		this.palabra = palabra;
	}

}
